1. Field of the Invention
This invention relates to Public Key Infrastructures (PKI), and more specifically to cross directory authentication in a PKI.
2. Background Information
A public key infrastructure (PKI) is a collection of servers and software that enables an organization, company, or enterprise to distribute and manage thousands of unique public/private cryptographic keys in a manner that allows users to reliably determine the identity of the owner of each public/private key pair. When each member of an enterprise has a unique key, paper-based business processes may be transitioned to an online, electronic equivalent. Public/private key pairs have the property that for any given public key there exists one and only one private key, and vice versa. Public key cryptography (i.e., the ability to publicly distribute the encryption key) can be used to digitally sign documents. If a particular message can be decrypted using one member of the key pair, then the assumption is that the message must have been encrypted using the other member. If only one person knows the key used to perform the encryption of a document in the first place, then the recipients that can decrypt the document can be sure that the sender of the document must be that person.
However, for a digital signature to be meaningful, the recipient of an object signed with the digital signature must first be able to reliably determine the owner and integrity of the key used to sign the object. Public infrastructures accomplish this using an electronic document called a digital certificate. Certificates may contain information identifying the owner of the key pair, the public component of the pair, and the period of time for which the certificate is valid. The certificate may also identify technical information about the key itself, such as the algorithm used to generate the key, and the key length. Certificates are generated by organizations, companies, or enterprises that are responsible for verifying the identity of individuals (or in some instances organizations) to which certificates are issued. The certifying organization is known as a certificate authority. The certificate authority signs each certificate using a private key known only to the certificate authority itself. This allows users of the PKI to verify both the integrity of the certificate and the identity of the authority that issued it. By issuing a certificate, a certificate authority is stating that it has verified that the public key that appears in the certificate (and, by extension, the corresponding private key) belongs to the individual listed in the certificate. The integrity with which the registration process operates is, therefore, of great importance. The process must provide mechanisms for reliably identifying the individual and for verifying that the public key listed in the certificate belongs to that individual.
FIG. 1 shows a block diagram of an example PKI system architecture. Current PKIs that provide strong authentication of user identity accomplish this via the use of a local registration authority officer (LRAO) 12. LRAO 12 operates at a work station or server platform 14 that runs a local registration authority software application 16. Server platform 14 may be any known computing device that may serve as a server, e.g., computer, workstation, etc. The local registration authority application 16 interfaces to other server platforms that may contain applications such as a certificate authority application 18, a registration authority application 20, and/or a key recovery authority application 22. Each application may be on the same server platform, or on separate individual server platforms 14. A user 10, that is using or desires access to the PKI system architecture, accesses the system via a web browser 22 on a client platform 24. A hardware token 26, such as a smart card, may also be operably connectable to client platform 24. Typically in current systems, user 10 presents a photo I.D. to the local registration authority officer 12 in order to authenticate the user's identity. Local registration authority officer 12 then uses workstation 14 and local registration authority application 16 to signal a registration authority application 20 to register new user 10 in the system. Local registration authority application 16 may be off-the-shelf product software that comes typically bundled with a certificate authority application 18, registration authority application 20, and key recovery authority 22 software.
A public/private key pair is generated by either the local registration authority application 16 or the registration authority application 20 (depending on products chosen and depending on how they've been configured). The public key is sent to certificate authority application 18 to be signed, thereby, generating a certificate for new user 10. A backup copy of the private key may also be sent to key recovery authority application 22, however, normally the private key is kept on a token 26, or at client platform 24 by user 10. Once the public key is sent to a certificate authority 18 and signed, a user certificate is generated and provided to a local registration authority server. Local registration authority officer 12 copies the certificate (including the private key) onto a floppy disk, hardware token, or other storage medium, and then provides the certificate and private key to the user.
Different enterprises generally use different PKIs. For example, if enterprise-A wishes to grant access to a server that is part of enterprise-A PKI for a user from a different enterprise, e.g., enterprise-B, server A cannot authenticate the identity of the user from enterprise-B since the user from enterprise-B is not a part of enterprise-A's PKI, and presents a signature certificate from enterprise-B's PKI for authentication.
Currently, a process called cross-certification is used to enable multiple enterprises to coordinate certificates among enterprise specific PKIs. In current systems, a Certificate Authority from a first PKI signs the public key of a Certificate Authority from a second PKI. Similarly, the Certificate Authority from the second PKI signs the public key of the Certificate Authority from the first PKI. Now, when a user or server in the first enterprise PKI receives a signature certificate from a user from the second enterprise PKI, the user's signature certificate from the second enterprise PKI will be signed by the Certificate Authority from the first enterprise. Generally, a user or server from the first enterprise would not know if a signature certificate from a second enterprise can be trusted, since the signature certificate is from a different PKI. However, since the signature from the Certificate Authority from the second enterprise has itself been signed by the Certificate Authority from the first enterprise, the user and server from the first enterprise know that the Certificate Authority signature in the signature certificate from the second enterprise can be trusted.
However, current systems such as this are problematic in that they do not scale up well. For example, if there are N PKIs, then there are N2 cross-certification signings that must be accomplished. Therefore, a need exists to allow a first enterprise to authenticate the identity of a user from a second enterprise within the first enterprise network.